Field of the Invention
Embodiments of the present invention relate generally to graphics processing and, more specifically, to data structures for efficient tiled rendering.
Description of the Related Art
Various graphics systems implement a tiling architecture that divides the screen-space into tiles and processes data associated with each tile in a particular order. That is, data associated with a first tile is processed first, data associated with a second tile is processed second, and so on. In such graphics systems, a highly parallel architecture may be implemented such that the work associated with one or more tiles is distributed to a plurality of processing units.
In one approach to distributing work in a highly parallel architecture, data is transferred from at least one world-space pipeline to multiple tiling units via a crossbar, where each tiling unit may be associated with a different screen-space pipeline. Although crossbars provide a high degree of flexibility when routing data, one drawback to implementing a crossbar is that overhead can be substantially increased and overall performance reduced if too much data is transmitted across the crossbar.
In addition, in many conventional tiled rendering systems, all geometry is typically tested against each tile to determine what, if any, geometry intersects the different tiles. One drawback to such an approach is that such testing is superfluous in cases where particular geometry does not intersect a given tile or when no geometry intersects a given tile. Consequently, conventional approaches to tiling may increase overhead and reduce overall performance too.
As the foregoing illustrates, what is needed in the art are ways to reduce the amount of data transmitted over a crossbar and increase the efficiency of tiling operations in a parallel tile-based architecture.